Robotic mower boundary coverage system

ABSTRACT

A robotic mower boundary coverage system includes a vehicle control unit on the robotic mower commanding a traction drive system to drive the robotic mower at a specified yaw angle with respect to a boundary wire, and a boundary sensor on the robotic mower signaling the distance between the boundary wire and the vehicle control unit. The vehicle control unit alternates commands to direct the traction drive system toward and away from the boundary wire based on the distance of the robotic mower to the boundary wire.

FIELD OF THE INVENTION

This invention relates to robotic lawn mowers, and more specifically toa boundary coverage system for a robotic mower.

BACKGROUND OF THE INVENTION

Robotic mowers may damage the turf near a perimeter wire or borderbecause they follow a path along or adjacent the boundary while mowing.Repeatedly following the same path along the boundary can cause damageand ruts due to wear from the robotic mower's wheels contacting the turfin the same place. There is a need for improved robotic mower boundarycoverage along a detectable edge or boundary that will minimize turfdamage.

SUMMARY OF THE INVENTION

A robotic mower boundary coverage system includes a vehicle control uniton the robotic mower commanding a traction drive system to drive therobotic mower at a specified yaw angle with respect to a boundary wire,and a boundary sensor on the robotic mower signaling the distancebetween the boundary wire and the vehicle control unit. The vehiclecontrol unit alternates commands to direct the traction drive systemtoward and away from the boundary wire based on the distance of therobotic mower to the boundary wire.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is schematic drawing of a robotic mower within a main boundarywire according to a preferred embodiment of the invention.

FIG. 2 is a block diagram of a boundary sensing system for a roboticmower according to a preferred embodiment of the invention.

FIG. 3 is a block diagram of an orientation and heading system for arobotic mower that may be used with the boundary sensing system of FIG.2.

FIG. 4 is a block diagram of an improved area coverage system for arobotic mower according to a first embodiment of the invention.

FIG. 5 is block diagram of an embodiment of a wide area coverage thatmay be used with the improved area coverage system of FIG. 4.

FIG. 6 is a block diagram of an embodiment of a local area coverage thatmay be used with the improved area coverage system of FIG. 4.

FIG. 7 is a block diagram of an embodiment of a boundary followingsystem that may be used according to one embodiment of the invention.

FIG. 8 is a block diagram of a boundary following system that may beused according to an alternative embodiment of the invention.

FIG. 9 is a block diagram of a boundary following system for a roboticmower with a single according to another alternative embodiment of theinvention.

FIG. 10 is a block diagram of a stuck detection system for a roboticmower according to a preferred embodiment of the invention.

FIG. 11 is a schematic diagram of a boundary sensor according to apreferred embodiment of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

In one embodiment shown in FIG. 1, robotic mower 100 may be powered bybattery pack 109 that may be charged periodically at charging station105. Vehicle control unit 101 may control all of the electronicfunctions of the robotic mower. For example, vehicle control unit 101may command a pair of traction motors 110, 111 to turn traction drivewheels, blade motor 112 to rotate a cutting blade or blades, batterypack 109, a user interface and various sensors.

Vehicle control unit 101 may be a printed circuit board assembly thatserves as the main control board for the robotic mower. The vehiclecontrol unit may interpret and process information from various sensors,and use that information to control and operate the pair of tractionmotors to drive the robotic mower over a yard in order to maintain thelawn, and to drive the blade motor. For example, the vehicle controlunit may be connected to a number of sensors including one or moreboundary sensors 119, as well as one or more obstacle sensors oraccelerometers. The vehicle control unit also may communicate with thebattery pack in order to monitor the status of the battery pack tomaintain a charge for one or more lithium ion batteries in the batterypack. The vehicle control unit also may be connected to a user interfacemodule including an LCD display along with several indicator lights andkey buttons for operator input.

In one embodiment, the vehicle control unit may include amicrocontroller such as an LQFPSTM32F103ZET6 processor from STMicroelectronics. The microcontroller may have 512 kB of internal flashmemory and 64 kbytes of internal RAM. The microcontroller may contain anARM Cortex M3 core, may run at a maximum core clock frequency, and mayuse an onboard AtoD converter. The vehicle control unit may containexternal static random access memory (SRAM) connected to themicrocontroller with a 16 bit FSMC bus and have a minimum capacity of 1Megabit.

In one embodiment, the vehicle control unit may include three externalEEPROM integrated circuits. For example, the EEPROMs may each be 125kilobyte ICs for a total capacity of 384 kilobytes. The EEPROMs may useand SPI interface to the microcontroller and may be used to storeconfiguration data. The vehicle control unit may use themicrocontroller's internal real time clock module.

In one embodiment, the vehicle control unit may interface and control ablade motor controller to power and control blade motor 112 that drivesthe cutting blade on the robotic mower. For example, blade motor 112 maybe a permanent magnet brushless DC motor, such as the EBM Papst 63.20BLDC motor having a typical output shaft speed range of about 4000 rpm.The vehicle control unit may have three inputs which receive signalsfrom hall effect rotor position sensors contained in the blade motor,such as Melexis US2884 Hall effect sensors. The vehicle control unit maysense the speed of the blade motor using feedback from the Hall effectsensors, and may sense the current through the blade motor phasescombined.

In one embodiment, the vehicle control unit may be connected to tractionmotor controllers for each of the left and right traction motors 110,111. Each traction motor may be a permanent magnet brushless DC motor,such as a EBM Papst 42.20 BLDC motor having a typical output shaft speedrange of about 2080 rpm. The vehicle control unit may have three inputswhich receive signals from Hall effect rotor position sensors, such asthe Melexis US2884 Hall effect sensor contained in each traction motor.The vehicle control unit may sense the speed of each traction motorusing a feedback from a hall sensor, and may sense the current throughthe traction motor phases combined.

Still referring to FIG. 1, in one embodiment, robotic mower 100 mayoperate in a specified area 102 that is surrounded by main or outerboundary wire 103 which may form a loop positioned at or below theground or turf surface. Additionally, inner wire 104 may be a shorterloop provided within the area of the main boundary wire where chargingstation 105 is positioned. The main boundary wire and inner wire may beconnected to charging station 105.

In one embodiment, boundary drive circuit 106 may be contained incharging station 105, and may drive signals on the main boundary wireand the inner wire. The fundamental frequency of the waveform on themain boundary wire may be about 2 kHz. The robotic mower may have aboundary wire sensor 119 to detect the waveform and provide a signal tothe vehicle control unit to indicate the distance of the sensor to themain boundary wire.

In one embodiment shown in the block diagram of FIG. 2, the chargingstation may drive the main boundary wire and inner wire from a singleh-bridge device. The h-bridge may drive both boundary wires, but onlyone of the boundary wires at a time, to minimize power requirements andcomponent costs.

In one embodiment, the boundary driving circuit may transmit a unique IDon the main or outer boundary wire loop ten times per second in block201. In block 203, the boundary driving circuit may encode the ID with a4 bit Barker code to improve the signal to noise ratio and reducesusceptibility to noise interference. The resulting 1's and 0's arecalled chips. A process gain of 6 dB may be achieved with four chips,where process gain is the ratio of chip rate to data rate. In block 205,the microprocessor may encode the Barker coded ID using Manchesterencoding to ensure there always is a line voltage transition for everybit or chip.

In one embodiment, in block 207, one or more boundary sensors on therobotic mower may receive the encoded boundary wire magnetic signal, andsend the signal to the vehicle control unit. In block 209, the vehiclecontrol unit may amplify the received signal. In block 211, the vehiclecontrol unit's analog to digital converter may sample the amplifiedsignal, preferably at a rate of 200 kHz. In block 213, the vehiclecontrol unit may buffer the sample data for further processing. Theboundary wire magnetic signal may be very small and similar in amplitudeto the background noise if the robotic mower is a significant distancefrom the main boundary wire loop. This limits the amount ofamplification that can be applied to the signal, and it may be difficultto detect the signal using traditional hardware/software methods.

In one embodiment, in block 215, the vehicle control unit may crosscorrelate the received signal (at the boundary sensor's presentposition) with a known waveform (at a known distance to the boundarywire) to identify the start bit in the data buffer and determine if thedata is inverted, indicating the sensor is outside the main boundaryloop, or normal, indicating the sensor is inside the main boundary loop.The peak to peak amplitude of the known waveform may be the theoreticalmaximum that the boundary sensor and vehicle control unit can receivewithout distorting the signal. Cross correlation is done by convertingthe known waveform data and the sampled waveform data from the timedomain into the frequency domain. This may be accomplished by running aFFT on the data, multiplying the FFT results together, and then runningan inverse FFT on the result of that product.

In block 217, the vehicle control unit may decode the Manchester andBarker coding, and verify the ID against the identification stored innon-volatile memory. In block 219, the vehicle control unit maydetermine the relative distance of the sensor from the outer boundarywire. The cross correlation function may provide the time lag differencebetween the known waveform (at a known distance to the boundary wire)and the unknown received sampled waveform (the boundary sensor'sdistance to the boundary wire). The location in time of the maximum peakvalue of the lag provides the starting location in time of thetransmitted data packet located in the sampled waveform data. Theamplitude of the lag is proportional to the difference between the knownwaveform's maximum amplitude and the received sample data's maximumamplitude. For example, if the known waveform has a maximum peak valueof 1.65 volts or 2048 A/D (0.000805 volts per count) counts, and theresulting cross correlation lag value is 360, the peak amplitude of thesampled data is 360*0.00805=0.2898 volts.

In one embodiment, the robotic mower may have one boundary sensor toindicate proximity of the sensor to the wire. FIG. 11 is a schematicdiagram of an embodiment of the electronic circuit of a boundary sensoron the robotic mower. The boundary sensor may include a sense coil L1and a circuit to amplify and filter the signal from the sense coilbefore it is applied to the A/D input of the vehicle control unit. Thebattery pack on the robotic mower may have a minimum power input voltageof 20V and a maximum power input voltage of 30 v. The vehicle controlunit may have a +5V power supply V5P to the boundary sensors, and thevehicle control unit may provide a 2.5V reference Vref to each boundarysensor. The signal range for each sensor may be 0V to 5.25V.

In one embodiment, sense coil L1 may be an inductor that detects themagnetic field generated by the current flowing in the main or outerboundary wire and/or inner boundary wire. For example, sensor coil L1may be a 100 mH 10% inductor Bournes RL622-104K-RC. The maximum peakvoltage of the sense coil L1 may be approximately 75 mV when the sensoris located six inches from the boundary wire.

In one embodiment, the boundary sensor circuit may include a quad op ampwith transimpedance amplifier U1-A, band pass filter U1-B, variable gainamplifier U1-C, and comparator U1-D. For example, the quad op amp may bea National Semiconductor LMV6484IMX Op Amp (Quad). A valid signal fromthe final stage output of the quad op amp may be greater than about 100mV.

In one embodiment, transimpedance amplifier U1-A may convert the currentinduced in sense coil L1 into a voltage and amplify that voltage.Resistor R1 may convert the output current from sense coil L1 into avoltage. The output voltage of the transimpedance amplifier may be equalto the input current multiplied by the feedback resistor R1. Forexample, resistor R1 may be 100 kΩ. Capacitor C1 may provide stabilityto prevent the transimpedance amplifier from oscillating. Oscillationmay be the result of capacitance of the input sensor and the op ampitself. For example, C1 may be a 47 pF 50V 10% C0G ceramic capacitor.

In one embodiment, band pass filter U1-B may provide a second orderSallen-Key high pass filter to cancel noise such as low frequency noisefrom the traction wheel motors of the robotic mower. Capacitors C2 andC3 and resistors R2 and R3 may set the corner or roll off frequency ofthe filter. For example, R2 and R3 may be 1 Meg Ohm 1/16W 1% resistors,and C2 and C3 may be 100 pF 50 V 5% C0G ceramic capacitors. The outputof the high pass filter may be followed by resistor R4 and capacitor C4,which may perform low pass filtering. For example, R4 may be a 10.0 k1/16 W 1% resistor, and C4 may be a 47 pF 50V 10% C0G ceramic capacitor.Capacitor C5 may be a decoupling capacitor with a voltage rating highenough for the maximum voltage on the +5V power supply. For example, C5may be a 0.1 μF 16V 10% X7R MLC capacitor.

In one embodiment, the quad op amp also may include variable gainamplifier U1-C. Resistors R5 and R6 may set the gain of the variablegain amplifier, and resistor R6 may provide the negative feedback. Forexample, R5 may be a 10.0 k, 1/16W, 1% resistor, and R6 may be a 100 kΩ,1/16W 1% resistor. Dual diode D1 may automatically reduce the gain whenthe received signal strength is higher, such as when the robotic moweris very near the boundary wire. If the output voltage of variable gainamplifier U1-C is too high, one of the pair of diodes D1 may conduct andclamp the voltage across resistor R6, reducing the gain. As the inputvoltage to the amplifier increases, a point will be reached where thediodes conduct. Beyond this point the feedback from the output to theinverting input will be equal to the voltage across the diode. Forexample, D1 may be an NXP BAV99LT1G high-speed switching dual diode.

In one embodiment, the boundary sensor circuit also may include unitygain buffer U2-A to buffer the output of variable gain amplifier U1-Cbefore connection to the vehicle control unit via a wiring harness. Forexample, unity gain buffer U2-A may be a National Semiconductor LM771 opamp. Capacitor C7 may be a bypass capacitor for unity gain buffer U2-A.For example, capacitor C7 may be a 0.1 μF 16V 10% X7R MLC capacitor.

In one embodiment, the boundary sensor circuit may include comparatorU1-D which may form a Schmitt trigger comparator circuit to provide anoutput that indicates whether or not the received signal strength isgreat enough to be considered a valid signal. If the received signal isgreater than the threshold, the output of the comparator will be high.Resistors R7 and R8 may form a voltage divider used to set the thresholdfor a valid signal, indicating a valid signal instead of noise. Forexample, R8 may be a 5.62 k, 1/16 W 1% resistor, and R7 may be a 200 Ω1/16W 1% resistor. Resistors R9 and R10 may configure the hysteresis ofthe comparator, with R10 providing the positive feedback. R9 and R10together set the upper and lower thresholds of the Schmitt triggercomparator. For example, R9 may be a 5.62 k 1/16W 1% resistor and R10may be a 1 Meg Ohm 1/16 W 1% resistor.

In an alternative embodiment, the robotic mower may have a plurality ofboundary sensors 119, and most preferably three boundary sensors mountedat or near the front of the robotic mower and a fourth boundary sensormounted at or near the back of the robotic mower. The vehicle controlunit may receive input from each of the boundary sensors regardingstrength of the signal from the main boundary wire to indicate proximityof the sensor to the wire.

In the alternative embodiment described in FIG. 3, the vehicle controlunit may use signals from four boundary sensors to determine orientationand heading of the robotic mower with respect to the boundary wire. Inblock 302, the vehicle control unit may sign the boundary distancesignal from each boundary sensor to indicate if the sensor is inside oroutside the main boundary wire. In block 304, the vehicle control unitcalculates Δ1 as the difference between the distance from the centerfront sensor to the main boundary wire, compared to the distance fromthe back sensor to the main boundary wire. In block 306, the vehiclecontrol unit calculates Δ4 as the difference between the left frontsensor to the main boundary wire, compared to the distance from theright front sensor to the main boundary wire. In block 308, the vehiclecontrol unit confirms the dimensions between the sensors on the mowerbased on fixed values stored in memory. For example, these dimensionsmay include L1 between the front center and back sensors, and L2 betweenthe left and right front sensors. In block 310, the vehicle control unitconfirms that the values calculated for Δ1 and Δ4 are within the rangesthat are possible given the specified dimensions, L1 and L2. In block312, the vehicle control unit calculates a pair of angles usingtrigonometric equations with Δ1, Δ4, L1 and L2. The angles may beθ1=arcsin(Δ1/L1) and θ2=arccos (Δ4/L2).

In one embodiment, in block 314, the vehicle control unit determineswhich of the four possible heading quadrants the robotic mower is inrelative to the main boundary wire. For example, if Δ1 is greater thanor equal to 0 and Δ4 is less than or equal to zero, the heading is inquadrant 1. In block 316, the vehicle control unit calculates theheading angle of the robotic mower given the heading quadrant from thepreceding step. For example, in quadrant 1, the angle θ=360degrees−arcsin (Δ1/L1)×180 degrees/π. The angle θ of the mower will bewithin the range from 0 degrees to 360 degrees. In block 318, thevehicle control unit may flip the angle for readings outside the mainboundary wire.

In one embodiment, the vehicle control unit may select the type of areacoverage used by the robotic mower for mowing within the main boundarywire. Using the steps described below in the block diagram of FIG. 4,the vehicle control unit may command the robotic mower to switch fromone type of area coverage to another without operator intervention andwithout discontinuing mowing. The vehicle control unit may select thetype of area coverage based on input from one or more boundary sensors119 regarding distance of the robotic mower to the main boundary wire,current draw of electric blade motor 112 that rotates one or morecutting blades, and the type of area coverage used during a specifiedpreceding time period which may be stored in the vehicle control unitmemory.

In one embodiment shown in the block diagram of FIG. 4, in block 400 therobotic mower may be activated to start area coverage, such as by anoperator or by an internal or external timer. The vehicle control unitthen may run the routine described in the block diagram about every 40milliseconds. In block 401 the vehicle control unit may determine if therobotic mower is in the charging station, preferably by checking if thevoltage on the charger contacts is within a specified range. If therobotic mower is in the charging station, in block 402 the vehiclecontrol unit may command the traction wheel motors to leave the chargingstation by rotating in reverse for a specified distance or duration toback up the robotic mower out and away from the charging station, thenturn the robotic mower around. The vehicle control unit may determinehow much each wheel motor has rotated based on pulse feedback from theHall effect sensor in each motor. If the vehicle control unit determinesthe robotic mower is not in the charging station, in block 403 thevehicle control unit may determine if the leave dock instruction isstill active. If the leave dock instruction is still active, in block404 the vehicle control unit may command the wheel motors of the roboticmower to continue executing the leave dock instruction.

In one embodiment, in block 405 the vehicle control unit may determineif a bump is detected, indicating the robotic mower has contacted anobstacle. Bump detection may be provided to the vehicle control unit byone or more accelerometers attached to the chassis and/or top cover ofthe robotic mower. The accelerometer may be a three axis accelerometersuch as the ST LIS302DL which also may be used to sense lifting andorientation, and may communicate to the microcontroller with a SPI busat the voltage logic level of the microcontroller. If the accelerometerindicates an obstacle is bumped, in block 406 the vehicle control unitmay command both traction motors to reverse direction for a specifieddistance or duration and then turn the robotic mower around.

In one embodiment, if no bump is detected, in block 407 the vehiclecontrol unit may determine if a specified coverage such as boundarycoverage was executed within a specified preceding time period such asseven days. The vehicle control unit memory may store data on the typeof coverage executed for a specified preceding time period. If boundarycoverage was not executed during the specified preceding time period, inblock 408 the vehicle control unit may command the traction motors toexecute boundary coverage. Preferred boundary coverages are describedbelow.

In one embodiment, if the specified boundary coverage was executedwithin the preceding time period specified in block 407, in block 409the vehicle control unit may determine if the robotic mower is closer tothe boundary or perimeter wire than a specified distance, using inputfrom one or more boundary sensors 119. If the robotic mower is closerthan the specified distance, in block 410 the vehicle control unit maycommand the traction motors to reverse direction for a specifiedduration and then turn the robotic mower around.

In one embodiment, if the robotic mower is not closer than the specifieddistance to the boundary wire, in block 411 the vehicle control unit maydetermine if the wheel motors are currently executing the reverse andturn around function. If the motors are still in reverse for theprespecified distance or duration, or have not finished turning therobotic mower around, in block 412 the vehicle control unit may commandboth traction wheel motors to continue the reverse and turn aroundfunctions.

In one embodiment, if the vehicle control unit determines the reverseand turn around function is currently active, in block 413 the vehiclecontrol unit may determine if the blade load is greater than a firstpredetermined specified value X which indicates uncut grass. Highercurrent means higher blade load and torque, indicating longer, uncutgrass. Lower current, lower blade load and torque, indicates shorter,cut grass. If the blade load is greater than the first value, in block414 the vehicle control unit may command the traction wheel motors toexecute local area coverage. A preferred local area coverage isdescribed below.

In one embodiment, if the blade load is not greater than thepredetermined specified value X, in block 415 the vehicle control unitcommands the traction wheel motors traction motors to execute wide areacoverage. A preferred wide area coverage is described below.

In one embodiment, the vehicle control unit may execute wide areacoverage by commanding the left and right wheel motors to drive therobotic mower in a straight line until an obstacle or boundary wire isencountered. When the robotic mower encounters the boundary wire orobstacle, the vehicle control unit may command the wheel motors toreverse and back up the mower for a prespecified distance and then turnthe robotic mower around, preferably less than 180 degrees, to follow apath that diverges from the preceding forward path. Alternatively, thevehicle control unit may specify and execute other methods of wide areacoverage, including but not limited to traveling in arcs instead ofstraight lines.

In a preferred embodiment shown in the block diagram of FIG. 5, widearea coverage may begin executing in block 500. In block 502, thevehicle control unit may set the forward ground speed of the tractionwheel motors at a nominal speed, and to maintain the same yaw orsteering angle (i.e., 0 degrees for a straight path) so that the roboticmower travels in a straight line.

In one embodiment, in block 504 the vehicle control unit determines ifthe robotic mower has bumped an obstacle, as indicated by one or moreaccelerometers, for example. If the robotic mower has detected anobstacle, in block 508 the vehicle control unit may command bothtraction wheel motors to rotate in reverse to back up at a reducedground speed, and to maintain the same yaw angle. If the robotic mowerhas not bumped an obstacle in block 504, the vehicle control unit maydetermine if one or more boundary sensors indicate the mower is closerto the main boundary wire than a prespecified threshold distance inblock 506. If one or more boundary sensors indicate the robotic mower isnot close to the main boundary wire, the vehicle control unit commandsthe left and right wheel motors to continue rotating forward asindicated in block 502. If the boundary sensor(s) indicate the roboticmower is close to the main boundary wire, in block 508 the vehiclecontrol unit may command the wheel motors to rotate in reverse at areduced ground speed, and to maintain the same yaw angle. In block 510,the vehicle control unit may determine if the traction wheel motors haverotated in reverse a prespecified or threshold time or distance. If thetraction wheel motors have not rotated the prespecified time or distancein reverse, the vehicle control unit may command the motors to continuein reverse as indicated in block 510.

In one embodiment, once the traction wheel motors have rotated for thethreshold distance or time in reverse, in block 512 the vehicle controlunit may set a target yaw angle at a prespecified angle, preferably lessthan 180 degrees, and command the left and right wheel motors to turnthe robotic mower around at a ground speed of zero. In block 514, thevehicle control unit determines the turn error from the target yawangle. In block 516, once the turn angle reaches the target yaw angle,the vehicle control unit may command the traction wheel motors to rotatein forward again at a nominal speed and maintain the same yaw angle(i.e., 0 degrees), as specified in block 502. If the turn angle has notreached the target yaw angle yet, the vehicle control unit will commandthe traction wheel motors to continuer turning the robotic mower around,and then calculate the turn error again in block 514.

In one embodiment, local area coverage may be a path that spiralsoutwardly, either clockwise or counterclockwise, from the roboticmower's initial position. Alternatives for local area coverage mayinclude other patterns starting from an initial position of the roboticmower. As shown in the block diagram of FIG. 6, in block 600 the vehiclecontrol unit begins executing local area coverage. In block 604, thevehicle control unit may determine the radius from the spiral center,where local area coverage began, to the current location of the roboticmower. When local area coverage begins the radius value is zero, and maybe incremented based on the difference in radius between sequentialpasses of the robotic mower around the spiral. Thus, the radius value isa function of how many degrees the robotic mower has traveled around thespiral, and the spacing of the spiral based on the robotic mower'seffective cutting width. In block 606, the vehicle control unit maydetermine if the radius is less than a prespecified minimum value. If itis less than the minimum value, in block 608 the vehicle control unitmay command the traction wheel motors to rotate at a minimum forwardground speed. In block 610, the vehicle control unit may determine ifthe radius is less than an intermediate value. If the radius is lessthan the intermediate value, in block 612 the vehicle control unit maycommand the traction wheel motors to rotate at a reduced forward groundspeed, which may be greater than the minimum speed. In block 614, thevehicle control unit may command the traction wheel motors to rotate ata nominal forward ground speed, which may be higher than the reducedspeed, if the radius is at least the intermediate value. In block 616,the vehicle control unit determines the desired change in yaw angle forthe sample, which may be a function of the time period between functioncalls, the ground speed, and the radius. In block 618, the vehiclecontrol unit may add the desired change in yaw angle to the spiraltotal. In block 620, the vehicle control unit may determine the desiredyaw angle for the robotic mower, which may be based on the current yawangle plus the desired change in yaw angle.

In one embodiment, the robotic mower may execute boundary coverage, orreturn to the charging station, on a path along or parallel to theboundary wire using the system described in the block diagram of FIG. 7.The vehicle control unit may use this system based on input from oneboundary sensor on the robotic mower regarding strength of the signalfrom the main boundary wire to indicate proximity of the sensor to thewire. The vehicle control unit may use input from the boundary sensor todirect the traction wheel motors to follow a path along or at aspecified distance parallel to the boundary wire.

As shown in FIG. 7, in block 700, the vehicle control unit may commandthe left and right traction motors to start rotating in forward on apath at a specified distance parallel to the boundary wire. In block701, the vehicle control unit compares the input from the boundarysensor to the specified distance, to decide if the robotic mower is tooclose or too far from the boundary wire. If the boundary sensorindicates it is within the specified distance to the boundary wire, inblock 702 the vehicle control unit commands the left and right wheeltraction drive motors to continue rotating straight ahead. If theboundary sensor indicates it is too close or too far from the boundarywire, in block 703 the vehicle control unit determines if the error ordeviation from the specified distance has decreased, by comparing theboundary sensor input to one or more previous boundary sensor inputs,preferably spanning a time period of at least about one second. If theerror has not decreased, in block 704 the vehicle control unit commandsthe left and right wheel motors to turn the vehicle at a larger acuteangle (such as 30 degrees) away from or back toward the boundary wire,depending on whether the robotic mower is too close or too far from theboundary wire. If the error has decreased, in block 705, the vehiclecontrol unit commands the left and right wheel motors to turn thevehicle at a reduced acute angle (such as 4 degrees) away from or backtoward the boundary wire, depending on whether the boundary sensor istoo close or too far from the boundary wire.

In an alternative embodiment, the vehicle control unit may command therobotic mower to execute boundary coverage using one or more patternsalong the boundary or perimeter wire. This boundary coverage may use apattern that minimizes turf damage or rutting along the boundary due torepetitive wear from the robotic mower's traction drive wheels andcaster wheels. For example, boundary coverage may use variable trafficpatterns such as a zig-zag pattern to shift the wheel tracks each timethe robotic mower executes boundary coverage along the boundary orperimeter wire. Other alternatives also may be specified by the roboticmower controller for boundary coverage, including but not limited tosine or square wave patterns along the boundary or perimeter wire.

In one embodiment, the vehicle control unit may use information receivedfrom one or more boundary sensors regarding the distance of the roboticmower to the boundary wire, to alternate the robotic mower's pathbetween driving toward and away from the boundary wire at a specifiedangle. For example, as shown in FIG. 8, the vehicle control unit mayexecute boundary coverage beginning in block 800. In block 802, thevehicle control unit may set a flag as a function of the distancebetween the boundary sensor and the boundary wire. For example, the flagmay be set at 0 if the boundary sensor indicates it is within athreshold distance to the boundary wire, or 1 if it is further than thethreshold distance. In block 804, the vehicle control unit may specifythe yaw angle of the robotic mower in relation to the main boundary wireat either plus 45 degrees or minus 45 degrees, depending on the flagsetting. In block 806, the vehicle control unit may command the left andright wheel motors to move the robotic mower forward at a reducedforward ground speed. In block 808, the vehicle control unit maydetermine if the robotic mower is within a minimum distance to theboundary wire. If the robotic mower is within the minimum distance, thevehicle control unit may reset the flag in block 802. If not, thevehicle control unit may determine if the robotic mower is farther thana maximum distance from the boundary wire in block 810. If the roboticmower is further than the maximum distance, the vehicle control unit mayreset the flag in block 802. Otherwise, the vehicle control unit maycommand the wheel motors to continue rotating forward at the reducedspeed, as shown in block 806. Thus, the vehicle control unit may commandthe traction motors to toggle back and forth between plus 45 and minus45 degrees as a function of the robotic mower's distance to theperimeter wire.

In one embodiment, the robotic mower's path along the boundary wire maychange or shift each time it executes boundary coverage. The shiftensures that the same turf is not repeatedly contacted and compacted bythe robotic mower's wheels. The shift may occur because the roboticmower will often have a different starting position each time it startsexecuting boundary coverage. Additionally, a shift may result fromchanging the boundary coverage pattern by including variables in thevehicle control unit logic such as the minimum and maximum distancesused to toggle the desired orientation, or using a different angle otherthan 45 degrees.

In one embodiment, the vehicle control unit may vary the distance of therobotic mower's path when the robotic mower executes home finding toreturn to the charging station. The vehicle control unit may specify areturn path that is offset from the main boundary wire, and varies overa range of available paths between a minimum offset and a maximumoffset. By varying the offset from the main boundary wire, the tractiondrive wheels of the robotic mower will not wear or damage the turf alongthe wire. The minimum and maximum allowable offset from the mainboundary wire may be preselected or constant. Alternatively, the offsetmay be incremented or reduced each time the robotic mower returns to thecharging station.

In one embodiment, as shown in FIG. 9, the vehicle control unit mayexecute home finding in block 900. In block 902, the vehicle controlunit may find the main boundary wire using one or more boundary sensors.In block 904, the vehicle control unit may select a random variable.Alternatively, in block 906 the vehicle control unit may increment avariable from the last execution of the home finding task. In block 908,the vehicle control unit may determine the desired offset from theboundary wire based on the random or incremented variable. In block 910,the vehicle control unit may command the wheel motors to rotate at thenominal forward speed, and at a yaw angle needed to maintain the desiredoffset. In block 912, the vehicle control unit determines if the innerloop wire is detected by the boundary sensors. If the inner loop wire isnot detected, the vehicle control unit may continue commanding the wheelmotors to rotate forward as shown in block 910. If the inner loop wireis detected, in block 914 the vehicle control unit commands the wheelmotors to reduce speed, and sets the yaw angle to orient the roboticmower to enter the charging station.

In one embodiment, the vehicle control unit memory may record and storethe time when an obstacle or boundary wire has been last detected, andmay determine the robotic mower is stuck if a prespecified amount oftime elapses before the robotic mower encounters an obstacle or boundarywire again. Preferably, an accelerometer or similar device may be usedto detect obstacles, and one or more boundary sensors may be used todetected the boundary wire. The timer duration may be prespecified bythe operator or as a function of the size of the area to be mowed,obstacle density, vehicle speed and navigation rules. Additionally, thetimer duration may be a function of the type of area coverage beingexecuted by the robotic mower.

In one embodiment, the timer duration may be the product of the expectedmaximum distance between obstacles or boundaries, and the roboticmower's expected travel speed. The timer duration may be relativelyshort during boundary coverage because the vehicle control unit expectsto encounter the boundary again after traveling only a short distance.The timer duration for wide area coverage may be determined from themaximum span between opposite boundaries if the robotic mower travels ina straight line.

In one embodiment, as shown in FIG. 10, the vehicle control unit mayexecute stuck detection in block 1000. In block 1002, the vehiclecontrol unit may set a timer based on maximum distance and mower speed.In block 1004, the vehicle control unit may determine if an obstacle orboundary wire is detected by an accelerometer or boundary sensor. If anobstacle or boundary wire is detected, in block 1006 the vehicle controlunit may command the robotic mower to reverse and turn around, and thenreset the timer again in block 1002. If an obstacle or boundary wire isnot detected, in block 1008 the vehicle control unit may determine ifthe timer exceeds a specified maximum time. If the timer does not exceedthe specified maximum, the vehicle control unit may resume checking ifan obstacle or boundary wire is detected in block 1004. If the specifiedmaximum time is exceeded, in block 1010 the vehicle control unit mayexecute a stuck vehicle task to safely move or stop the robotic mower.

Having described the preferred embodiment, it will become apparent thatvarious modifications can be made without departing from the scope ofthe invention as defined in the accompanying claims.

1. A robotic mower boundary coverage system, comprising: a vehiclecontrol unit on the robotic mower commanding a traction drive system todrive the robotic mower at a specified yaw angle greater than 0 degreesand less than 180 degrees or greater than 180 degrees and less than 360degrees adjacent a boundary wire; and a plurality of boundary wiresensors on the robotic mower each detecting a waveform from the boundarywire and providing a signal to the vehicle control unit to indicatedistances between the boundary wire and the plurality of boundary wiresensors; the vehicle control unit determining a heading and anorientation angle of the robotic mower with respect to the boundary wireusing trigonometric relationships of a difference of the indicateddistances from the plurality of boundary wire sensors and a knowndistance between the plurality of boundary wire sensors, and providingcommands to direct the traction drive system to drive the robotic mowertoward the boundary wire if the difference of the indicated distances isgreater than a threshold difference in relation to the boundary wire atthe specified yaw angle and away from the boundary wire if thedifference of the indicated distances is less than the thresholddifference in relation to the boundary wire at the specified yaw angle.2. The robotic mower boundary coverage system of claim 1 wherein thespecified yaw angle is 45 degrees.
 3. A robotic mower boundary coveragesystem, comprising: a vehicle control unit on the robotic mowercommanding a traction drive system to drive the robotic mower at aspecified difference in distances with respect to a boundary wire; afirst boundary wire sensor and a second boundary wire sensor on therobotic mower each detecting a waveform from a boundary wire andproviding a signal to a vehicle control unit to indicate distancesbetween the boundary wire sensors and the boundary wire, wherein anactual difference in distances is calculated after comparing theindicated distances between the boundary wire sensors and the boundarywire; the vehicle control unit determining a heading and an orientationangle of the robotic mower with respect to the boundary wire usingtrigonometric relationships of the actual difference in distances and aknown distance between the first and second boundary wire sensors, andcommanding the traction drive system to turn the robotic mower at aspecified angle greater than 0 degrees and less than 180 degrees orgreater than 180 degrees and less than 360 degrees adjacent the boundarywire based on the difference between the specified difference indistances and the actual difference in distances; and based on thedifference between the specified difference in distances and the actualdifference in distances from at least one previous boundary wire sensorsignal.
 4. The robotic mower boundary coverage system of claim 3,wherein the vehicle control unit commands the traction drive system toturn the robotic mower at a reduced angle from the specified angle ifthe difference between the specified difference in distances and theactual difference in distances is reduced.
 5. The robotic mower boundarycoverage system of claim 3 wherein the vehicle control unit commands thetraction drive system to drive the robotic mower straight ahead if thedifference between the specified difference in distances and the actualdifference in distances is under a threshold difference.
 6. The roboticmower boundary coverage system of claim 3 wherein the traction drivesystem includes a left wheel motor and right wheel motor.
 7. A roboticmower boundary coverage system, comprising: a pair of boundary wiresensors on a robotic mower each detecting a waveform from a boundarywire and providing a signal to a vehicle control unit to indicatedistances between the pair of boundary wire sensors and the boundarywire, wherein a difference in distances is calculated after comparingthe indicated distances between the pair of boundary wire sensors; thevehicle control unit determining a heading and an orientation angle ofthe robotic mower with respect to the boundary wire using trigonometricrelationships of the difference in distances between the pair ofboundary wire sensors and a known distance between the pair of boundarywire sensors, and commanding a traction drive system to orient and drivethe robotic mower to mow in a pattern within a specified orientationangle greater than 0 degrees and less than 180 degrees or greater than180 degrees and less than 360 degrees adjacent the boundary wire,including alternating travel of the robotic mower toward the boundarywire and away from the boundary wire.
 8. The robotic mower boundarycoverage system of claim 7 wherein the vehicle control unit commands therobotic mower to travel away from the boundary wire when the differencein distances between the pair of boundary wire sensors is within aminimum threshold difference.
 9. The robotic mower boundary coveragesystem of claim 7 wherein the vehicle control unit commands the roboticmower to travel toward the boundary wire when the difference indistances between the pair of boundary wire sensors is within a maximumthreshold difference.
 10. The robotic mower boundary coverage system ofclaim 7 wherein the vehicle control unit selects boundary coverage ifboundary coverage was not executed in a specified preceding time period.